TESTCASE_SOURCE := $(shell find . -name *.S)
TESTCASE_ELF := $(patsubst %.S,%.elf,$(TESTCASE_SOURCE))
TESTCASE_ASM := $(patsubst %.S,%.asm,$(TESTCASE_SOURCE))
TESTCASE_HEX := $(patsubst %.S,%.hex,$(TESTCASE_SOURCE))
TESTCASE_BIN := $(patsubst %.S,%.bin,$(TESTCASE_SOURCE))
TESTCASE_OBJ := $(patsubst %.S,%.o,$(TESTCASE_SOURCE))

all:
	$(RISCV_GCC) $(RISCV_GCC_OPTS) -c $(TESTCASE_SOURCE)
	$(RISCV_LD) -T link.ld $(TESTCASE_OBJ) -o $(TESTCASE_ELF)
	$(RISCV_OBJDUMP) $(TESTCASE_ELF) > $(TESTCASE_ASM)
	$(RISCV_OBJCOPY) $(TESTCASE_ELF) $(TESTCASE_BIN)
	od -v -An -tx8 $(TESTCASE_BIN) > $(TESTCASE_HEX)
	rm -rf $(TESTCASE_BIN)

clean:
	rm -f $(TESTCASE_ELF) $(TESTCASE_ASM) $(TESTCASE_HEX) $(TESTCASE_OBJ)
	
	